from time import time
#Сортировка без флажка
def bubble(A):
    for j in range(len(A) - 1, -1,-1):
        for i in range(j):
            if A[i] > A[i + 1]:
                t = A[i]
                A[i] = A[i + 1]
                A[i + 1] = t


#Сортировка с флажком
def bubble_2(A):
    #флажок
    A_sort = False
    #Переменная для проверки 
    N = len(A) - 1
    #Проверка, что не сортирован файл
    while N > 0 and not A_sort:
        #Предположение, что файл отсортирован 
        A_sort = True
        #Основной цикл, если не отсортирован 
        for i in range(N):
            if A[i] > A[i + 1]:
                t = A[i]
                A[i] = A[i + 1]
                A[i + 1] = t
                A_sort = False         
        #Уменьшаем размер строки 
        N -= 1


def count_time(array, sort_funс):
    begin_time = time()
    sort_funс(array)
    end_time = time()
    return int((end_time - begin_time) * 1000)

for filename in ("m1_sorted.txt","m2_reverse.txt","m3_shuffle.txt"):
    f = open(filename,"r")
    data = [int(x) for x in f]
    f.close()
    data_copy = data.copy()

    #Первый вариант
    sort_time = count_time(data, bubble)
    #Второй вариант
    sort_time2 = count_time(data_copy, bubble_2)
    print(filename, "is sorted by", sort_time, "with bubble")
    print(filename, "is sorted by", sort_time2, "with bubble_2")
          


